package org.example.backend.service;

import org.example.backend.dto.TicketDTO;
import org.example.backend.dto.TicketOrderDTO;
import org.example.backend.entity.Ticket;
import org.example.backend.entity.TicketOrder;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.time.LocalDate;
import java.util.List;

public interface TicketService {
    Ticket createTicket(TicketDTO ticketDTO);
    Ticket updateTicket(Long id, TicketDTO ticketDTO);
    void deleteTicket(Long id);
    Ticket getTicket(Long id);
    Page<Ticket> getTickets(Boolean isActive, Pageable pageable);
    
    TicketOrder createOrder(TicketOrderDTO orderDTO);
    TicketOrder getOrder(Long id);
    Page<TicketOrder> getUserOrders(Pageable pageable);
    Page<TicketOrder> getAllOrders(LocalDate startDate, LocalDate endDate, Pageable pageable);
    void cancelOrder(Long id);
} 